مدل شی در اکسل و کار با اشیاء در آن
اگر شما بعنوان یک برنامه نویس در محیط کاری اکسل فعالیت کنید یکی از اصطلاحاتی که به وفور با آن سر و کار خواهید داشت عبارت ” شی” یا object می باشد .
زبان برنامه نویسی VBA یک زبان شی گراست .
تمام کاری که این زبان انجام می دهد مدیریت اشیا موجود در نرم افزار میزبان می باشد .
با توجه به مسائل فوق اگر شما می خواهید به مهارت کار با زبان برنامه نویسی VBA دست پیدا کنید ناگزیر باید درک صحیحی از سه مفهوم زیر داشته باشید .
- اینکه شی چیست و چه معنا و مفهومی دارد ؟
- مدل شی اکسل به چه قرار است ؟
- چگونه می توانیم به آدرس دهی مدیریت اشیا موجود در اکسل بپردازیم .
در خصوص سوال نخست که شی چیست و چه معنا و مفهومی دارد بطور مفصل در مطلبی جداگانه بحث شده است . برای دسترسی به مطلب مذکور می توانید از لینک زیر استفاده نمایید .
بیشتر بدانید : مفهوم شی در اکسس مفهوم شی در اکسس و برنامه نویسی VBA
و اما در خصوص سوال دوم .
مدل شی در اکسل به چه قرار است ؟
مدل شی اکسل عبارت است از دسته بندی هایی که بر روی اشیاء اکسل انجام شده است .
این دسته بندی ها باعث سهولت در فراخوانی و کار با اشیاء موجود در اکسل می شود .
در تمام این دسته بندی هایی که بر روی اشیای اکسل انجام شده است یک اصل کلی حاکم است و آن اصل چیزی نیست جز اصل ” سلسه مراتب ” .
قبل از اینکه بخواهیم وارد بحث در خصوص مدل شی اکسل شویم باید با مفهومی به نام مجموعه ها یا Collection آشنا شویم .
منظور از مجموعه یا Collection جیست ؟
اجازه بدهید با یک مثال مطلب را باز کنم .
همانگونه که می دانید ما در دنیایی زندگی میکنیم که اطراف ما توسط اشیای مختلفی احاطه شده است
از آنجا که این اشیا دارای تنوع و تعداد بسیار زیادی هستند به جهت سهولت در شناسایی و استفاده از این اشیا آنها را در گروه ها و دسته های مختلفی طبقه بندی می کنیم که در اصطلاح به هر گروه از این اشیا یک مجموعه گفته می شود
یک مجموعه را اینگونه میتوانیم تعریف نماییم که:
مجموعه عبارت است از تعدادی از اشیا که با یکدیگر شباهتهای ظاهری یکسان و یا دارای ویژگی ها و عملکرد شبیه به هم میباشند.
به عنوان مثال به دیاگرام زیر توجه نمایید
آنچه که در تصویر بالا ملاحظه می نمایید تقسیم بندی است که بر روی انواع مختلف اشیایی که هر روزه با آنها سرو کار داریم را انجام داده ایم .
با این کار به راحتی میتوانیم اشیای مختلف خود را در مجموعه مربوط به خود قرار داده و به مطالعه و بررسی آنها بپردازیم
یکی دیگر از مفاهیمی که در کار با مجموعه ها در نرم افزار اکسل و اکسس با آن سر و کار داریم اصطلاح سلسله مراتب می باشد.
مفهوم سلسله مراتب در مجموعه ها
سلسله مراتب بیان می کند که هر شی همزمان که می تواند عضو یک مجموعه باشد در عین حال خود دارای زیرمجموعه های مختلفی نیز خواهد بود.
این تقسیم بندی در زیر مجموعه ها به همین ترتیب می تواند ادامه داشته باشد. و به صورت سلسله مراتب از بالا به پایین تداوم یابد.
بنابراین با مفاهیم مربوط به مجموعه و سلسله مراتب با استفاده از اشیاء دنیای پیرامون خود آشنایی پیدا کردیم.
اکنون می خواهیم این مفاهیم و اصطلاحات را در دنیای مربوط به اکسل و برنامه نویسی مربوط به آن مورد بررسی قرار بدهیم.
یعنی می خواهیم بدانیم که وقتی صحبت از شی در محیط اکسل می کنیم منظور ما از کلمه شی چیست و به چه چیز هایی اشاره دارد.
و یا اینکه کاربرد کلمه مجموعه و سلسله مراتب در نرم افزار اکسل و محیط برنامه نویسی مربوط به آن به چه منوال می باشد.
مفهوم مدل شی در اکسل
با معنا و مفهوم کلمه شی و اینکه منظور از شی در محیط کاری اکسل و اکسس قبلا به تفصیل در طی مطلبی جداگانه پرداخته شده است که از طریق لینک زیر میتوانید به این مطلب دست یافته و با این مفهوم آشنا شوید
مفهوم مجموعه یا collection در اکسل
تا اینجای کار دانستیم که برنامه ویرایشگر کد های وی بی ای به هر آنچه که در محیط کاری اکسل وجود دارد به چشم یک شیء نگاه می کند.
و همانطور که عنوان نمودیم با استفاده از کدهای درج شده در این محیط میتوان به مدیریت این اشیا پرداخت.
اما نرم افزار اکسل نیز به منظور سهولت در بررسی اشیای مختلف و کار با این اشیا همانند آنچه که ما مورد اشیا واقعی در دنیای پیرامون خودمان انجام دادیم کلیه اجزای موجود در خود را در مجموعه های مختص به خود طبقه بندی نموده است و به منظور سهولت در دسترسی به اشیاء موجود در یک مجموعه هر مجموعه را با نام مختص به خود نامگذاری نموده است.
بعنوان مثال تمامی شیت های کاری موجود در اکسل در مجموعه ای به نام worksheets دسته بندی شده اند .
و یا تمامی نمودارهای ایجاد شده در این نرم افزار در مجموعه ای به نام Charts قرار می گیرند .
مفهوم سلسله مراتب در مدل شی اکسل
همانگونه که به مفهوم سلسله مراتب مربوط به اشیاء در دنیای واقعی خود پرداختیم اصل سلسله مراتب در مورد اشیای اکسل نیز مصداق دارد .
اصل سلسله مراتب در نرم افزار اکسل می تواند به صورت زیر بیان شود
- سطح اول: در اولین سطح از سلسله مراتب اشیاء فقط و فقط می تواند یک شی وجود داشته باشد .
- سطح دوم : شی قرار گرفته در سطح اول خود می تواند شامل اشیا مختلفی باشد که در سطح دوم قرار می گیرند
- سطح سوم: اشیای قرار گرفته در سطح دوم نیز به نوبه خود می توانند دارای زیرمجموعههایی باشند که در سطح سوم قرار می گیرند.
و این قضیه برای سایر سطوح چهارم و پنجم و یا بیشتر نیز می تواند ادامه داشته باشد.
فرآیند سلسله مراتب بر این اصل استوار است که هر شی می تواند شامل اشیا مختلفی باشد.
و فرآیند سلسله مراتب تا جایی می تواند ادامه پیدا کند که شما به شی برسید که این شی فاقد هرگونه شی دیگر و یا زیر مجموعه دیگری باشد.
بررسی سطوح اشیا موجود در اکسل از لحاظ سلسله مراتب
همانگونه که بیان کردیم در سطح اول از سلسله مراتب اشیا در اکسل فقط و فقط می تواند یک شی قرار بگیرد .
وقتی که ما در حال کار و برنامه نویسی درون نرم افزار اکسل هستیم شئی که در ابتدای این سلسله مراتب قرار می گیرد خود برنامه کاربردی یا نرم افزار اکسل است که از آن تحت عنوان Application نام می بریم .
در سطح دوم اشیایی قرار می گیرند که در درون نرم افزار اکسل هستند و توسط محیط کد نویسی می توان به آنها دسترسی یافته و آنها را مدیریت نمود .
تصویر زیر سطح دوم این اشیا را نمایش می دهد .
اشیایی که در این سطح قرار می گیرند شامل موارد زیر هستند :
- Add-Ins :
این دسته از اشیا شامل تمامی افزونه هایی هستند که می توانند به محیط اکسل اضافه شوند .
۲٫ Windows :
این دسته از اشیا شامل تمامی اشیای مربوط به ویندوز است که در محیط اکسل وجود دارند .
۳٫ Workbooks :
این دسته اشیا نیز در برگیرنده تمامی اشیا از نوع workbook می باشند .
اما خود این اشیا نیز می توانند در برگیرنده اشیای دیگری باشند که در سطح بعدی قرار می گیرند .
به تصویر زیر توجه نمایید .
بعنوان مثال مجموعه workbooks خود می تواند شامل اشیایی است که در زیر به آنها اشاره می نماییم .
- شی Charts
این مجموعه خود می تواند شامل یک یا چند نمودار باشد که همگی تحت این مجموعه قرار می گیرند .
۲٫ شی Names
این شی می تواند خود شامل مجموعه ای اسامی باشد که برای یک یا چند سلول در نظر گرفته می شود .
۳٫- مجموعه VBproject
این مجموعه فایل اکسل جاری به عنوان یک شی معرفی می نماید .
۴- مجموعه Windows
این مجموعه می تواند شامل مجموعه ای از اشیای Windows است که از آنها می توان در این سطح استفاده نمود .
۵- مجموعه worksheets
این مجموعه خود می تواند شامل چندین شیت کاری باشد که در این مجموعه گرد آوری شده اند .
در سطح بعدی باز هم می توان اشیای دیگری را برای این سطح یافت .
بعنوان مثال به تصویر زیر نگاه کنید .
تصویر فوق نشان می دهد که مجموعه Workbooks نیز به نوبه خود می تواند مشتمل بر چندین شی زیر مجموعه باشد .
اشیای مربوط به این مجموعه به قرار زیر هستند :
- chart objects
این شی می تواند شامل اشیای نوع نمودار باشد .
۲٫ Comments
شامل تمامی یادداشت های یک یا چند سلول می باشد .
۳٫ Hyperlink
شامل لینک های موجود در صفحه کاری اکسل است .
۴٫ Name
شامل اسامی مربوط به یک سلول یا محدوده ای از سلول ها .
۵٫ Page setup
اطلاعات مربوط به پرینت یک صفحه کاری را ارائه می نماید .
۶٫ Pivot table
اشیای pivot table را در خود ذخیره می نماید .
۷٫ Range
اشاره به محدوده معینی از سلول ها دارد .
اگر باز هم بخواهیم در این سلسله مراتب به مراحل پایین تر برویم باز هم می توانیم اشیای دیگری را برای این سطح تعریف نماییم .
بعنوان مثال خود مجموعه Windows می تواند شامل اشیای بسیار زیادی باشد که از آنها می توان بهره برد .
در بررسی مدل شی در اکسل ذکر این نکته خالی از لطف نخواهد بود :
- آنچه که در دیاگرام بالا مشاهده می نماید تنها گوشه ای از دهها و صدها شی ای است که در محیط اکسل وجود دارند و ما می توانیم از آنها استفاده نماییم .
- حتما متوجه شده اید که اشیای موجود در نرم افزار اکسس ار نگوییم نامحدود اما قطغا از تعداد بسیار زیادی برخوردار است .
حال سوال این است که ما چگونه می توانیم با تمامی این اشیا آشنا شویم و از همه آنها استفاده کنیم ؟
پاسخ این سوال این است که ما نیازی به دانستن همه اشیا و آشنایی کامل با تمامی این اشیا نداریم .
بلکه فقط کافی است که با مفهوم کار با اشیا اکسل آشنا شویم و فقط با برخی از اشیایی که کاربرد آنها بیشتر و متداولتر از بقیه است آشنا شویم .
مسلما با پیشرفت هایی که در کار با برنامه نویسی VBA خواهیم نمود می توانیم به مرور زمان دامنه آشنایی خود با اشیای مختلف را گسترش دهیم .
تا به اینجای کار به دو سوالی که در ابتدای این مطلب مطرح نمودیم پاسخ دادیم .
اینکه معنا و مفهوم شی چیست ؟
واینکه منظور از مجموعه و سلسله مراتب اشیا در مدل شی در اکسل چیست ؟
حال به بررسی سوال سوم بپردازیم .
-
چگونگی آدرس دهی و مدیریت اشیا در محیط برنامه نویسی VBA
هدف کلی از برنامه نویسی در محیط اکسل بدست گرفتن مدیریت اشیای موجود در آن توسط کد نویسی در محیط برنامه نویسی VBA می باشد .
وقتی که ما می خواهیم یک شی را در محیط اکسل مدیریت نماییم لازم است که در ابتدا آدرس آن شی را به برنامه معرفی نماییم .
بعنوان مثال فرض نمایید که ما می خواهیم در سلول A1 از sheet 2 عبارت softpluse را درج نماییم .
برای این کار باید آدرس سلول محلی را که می خواهیم عبارت مورد نظر ما در آن درج شود را به برنامه مغرفی نماییم .
اما سوال اساسی این است که این کار را چگونه باید انجام دهیم ؟
چگونه می توانیم به یک شی در محیط برنامه نویسی اکسل اشاره نموده و به آن دسترسی پیدا نماییم ؟
این کار طی فرآیند آدرس دهی در برنامه نویسی انجام می گیرد .
اکنون ببینیم که چگونه می توانیم این فرآیند را به سرانجام برسانیم .
واقعیت امر برای این است که می توانیم برای اشاره به یک شی در اکسل از دو روش بهره ببریم :
- آدرس دهی یک شی بطور کامل
- آدرس دهی یک شی بطور خلاصه شده
آدرس دهی اشیا بطور کامل
در این روش می توانیم به محل قرار گیری یک شی با آدرس دهی کامل اشاره نماییم .
منظور از آدرس دهی کامل اشاره به شی مورد نظر ما در سلسله مراتب مربوط به آن از راس تا انتهای آن می باشد .
هرچند که در مراحل فرا خواهیم گرفت که نیازی به آدرس دهی یک شی بطور کامل از راس سلسله مراتب آن نمی باشد اما از آنجا که این نوع آدرس دهی می تواند تاثیر مثبتی بر درک مفهوم سلسله مراتب و آدرس دهی اشیا داشته باشد ابتدا به بررسی آن پرداخته و در مراحل بعدی به بررسی دیگر روش ها نیز خواهیم پرداخت .
کاری که می خواهیم انجام دهیم شروع از راس هرم مربوط به سلسله مراتب یک شی و حرکت کردن به سمت پایین این سلسله مراتب است که در انتها به شی مورد نظر خود برسیم .
در راس هرم ما خود نرم افزار اکسل بعنوان یک شی قرار دارد .
اشاره به اکسل بعنوان یک شی بسیار ساده است فقط کافی است از عبارت زیر استفاده نماید .
.Application
در اینجا کلمه Application اشاره به اکسل دارد .
برای حرکت در سلسله مراتب از بالا به پایین در هر مرحله باید از یک علامت نقطه استفاده نماییم .
در واقع با استفاده از علامت نقطه می توانیم بین یک شی و مجموعه مربوط به آن ارتباط برقرار می نماییم .
بیاید این موضوع را با نگاه نمودن به دیاگرام خود بررسی نماییم .
فرض کنید که می خواهیم به محدوده سلول ها ی A 1 تا A10 دسترسی پیدا کنیم .
برای این کار داریم .
اگر بخواهیم نمودار بالا را به زبان کد در آوریم باید اینگونه درج کنیم که :
اجازه بدهید در اینجا به یک نکته مهم اشاره نمایم
همانطور که می دانیم شی Workbooks خود می تواند شامل چندین Workbook مجزا از هم باشد .
اما منظور از Workbook چیست ؟
به هر فایلی که توسط اکسل ایجاد شده و در کامپیوتر شما ذخیره می شود تحت عنوان Workbook شناخته می شود .
اگر شما در آن واحد دو یا تعداد بیشتری فایل اکسل را باز نمایید محیط ویرایشگر کدهای VBA هر فایل را تحت عنوان یک Workbook می شناسد .
اما در اینجا دو سوال اساسی پیش می آید :
اول اینکه اگر بیشتر از یک فایل اکسل باز بود چگونه به برنامه بفهمانیم که با کدام یک از فایل ها سر و کار داریم .
همین قضیه در مورد Worksheets نیز صدق می نماید . اینکه کدام worksheet از کدام workbook مد نظر ماست .
در واقع این گونه می توان سوال خود را مطرح نمود که چگونه به یک شی در یک مجموعه خاص اشاره نماییم ؟
واقعیت امر این است که شما در بسیاری از مواقع با اشیایی مشخص از یک مجموعه مشخص سر و کار دارید .
بعنوان مثال اگربخواهید یک شیت کاری را در اکسل جاری خود باز کنید فقط کافی است از طریق مجموعه مورد نظر به شی خود اشاره نمایید .
برای این کار مراحل زیر را باید پشت سر بگذاریم :
- ابتدا نام مجموعه مورد نظر خود را ذکر کنید .
- بعد از نام مجموعه مورد نظر خود یک پرانتز قرار دهید .
- نام شی مورد نظر خود را که در مجموعه مربوطه قرار دارد را درج نمایید .
- در اطراف نام شی مورد نظر خود که درون پرانتز قرار دارد حتما از دابل کوتیشن استفاده نمایید .
بیایید موارد بالا را با ذکر یک مثال بررسی نماییم .
می خواهیم به sheet 2 از فایل اکسلی که در آن هستیم دسترسی پیدا نماییم
همانگونه که ملاحظه می نمایید در اینجا فرض بر این است که تنها یک فایل اکسل باز شده داریم بنابراین نیازی به به درج مجموعه های بالا دستی شامل Application و workbooks نداریم .
این حالت ، حالت خلاصه شده آدرس دهی اشیا در اکسل می باشد .
اما اگر دو یا چند فایل اکسل را بطور همزمان باز کردیم چه ؟
همانگونه که می دانید وقتی که یک فایل اکسل را ایجاد می کنیم برای ذخیره نمودن آن فایل باید نامی را در نظر بگیریم .
در اینجا دو گزینه پیش روی ماست یا اینکه نام پیشنهادی اکسل را قبول کنیم که بصورت پیشفرض اکسل نام Book را به همراه یک شماره برای ذخیره کردن پیشنهاد می دهد که نام Workbook نیز از این همین جا نشات می گیرد .
و حالت دوم و ایده آل این است که خود ما برای فایل مورد نظر خود یک نام را در نظر گرفته و آن را ذخیره کنیم .
حال فرض کنید که ما دو فایل داریم اولی به نام Book1 که باز است و فایل دومی که باز است را با نام mysoftpluse می شناسیم .
اکنون می خواهیم در محیط کد نویسی مربوط به فایل با نام Book1 کدی بنویسیم که به sheet2 از فایل مربوط به mysoftpluse دسترسی پیدا کنیم .
برای این کار می توانیم از کد زیر بهره ببریم .
نکته ای باید در مورد کد بالا به آن اشاره نمود این است که باید هر دو فایل مورد نظر ما در آن واحد باز بوده و به حالت فعال باشند .
اشاره به نام یک شی با استفاده از شماره ایندکس آن
وقتی که اکسل اشیار ا بصورت یک مجموعه طبقه بندی می نماید به هرکدام از اشیا موجود در هر مجموعه یک شماره یکتا اختصاص می دهد که از آن تحت عنوان ایندکس نام می بریم .
بعنوان مثال اگر ما فایل اکسلی داشته باشیم که در آن ۳ شیت کاری باز داریم اکسل این ۳ شیت را در مجموعه worksheets ذخیره می نماید .
در این فرآیند ذخیره کردن هم یک نام برای هر شیت در نظر گرفته می شود و هم یک شماره که هر دوی این مشخصه ها به هیچ عنوان نمی توانند تکراری باشند .
یعنی امکان ندارد که شما دو شیت کاری داشته باشید که هر دوی آنها یک نام داشته باشند .
بنابراین برای اشاره به یک شی در یک مجموعه علاوه بر ذکر نام آن شی می توانیم از شماره منحصر به فرد آن نیز استفاده نماییم .
بعنوان مثال برای اشاره به sheet 2 در فایل جاری می توانیم از کد زیر بهره ببریم .
نکته ای که در مورد کد بالا باید به آن اشاره نمود این است که در داخل پرانتز بر خلاف حالتی که از نام شیت استفاده می کردیم نیاز ی به استفاده از علامت کوتیشن ” ” در اطراف عدد مربوطه نداریم .
آنچه که در این مطلب به آن پرداخته شد را می توان تنها مقدمه ای بر آشنایی و مدیریت اشیا در اکسل دانست .
در آینده باز هم با مطالب بیشتری در این خصوص خواهیم داشت .
دیدگاهتان را بنویسید